#include<bits/stdc++.h>
using namespace std;
const int N=100000+10;
const int Mod=1000000007;
int arr1[N];
int arr2[N];
int main()
{
	int n,ma,mb;
	cin>>n>>ma;
	for(int i=ma-1;i>=0;i--)
	{
		cin>>arr1[i];
	}
	cin>>mb;
	for(int j=mb-1;j>=0;j--)
	{
		cin>>arr2[j];
	}
	long long result=0;
	long long step=1;
	for(int i=0;i<max(ma,mb);i++)
	{
		result=(((arr1[i]-arr2[i])*step)%Mod+result)%Mod;
		step=(max(max(arr1[i],arr2[i])+1,2)*step)%Mod;
	}
	cout<<result;
	return 0;
}